import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;


public class Usuario {
	private String intIDusuario;
	private String strUser;
	private String strPassword;
	
	private String strNombres;
	private String strApellidos;
	private String strSexo;
	private String strPais;
	private String strDireccion;
	private String strTelefono;
	private String strFechaNacimiento;
	private String mensajeBean;
	
	/**
	 * @return the strUser
	 */
	public String getStrUser() {
		return strUser;
	}
	/**
	 * @return the mensajeBean
	 */
	public String getMensajeBean() {
		return mensajeBean;
	}
	/**
	 * @param mensajeBean the mensajeBean to set
	 */
	public void setMensajeBean(String mensajeBean) {
		this.mensajeBean = mensajeBean;
	}
	/**
	 * @param strUser the strUser to set
	 */
	public void setStrUser(String strUser) {
		this.strUser = strUser;
	}
	/**
	 * @return the strPassword
	 */
	public String getStrPassword() {
		return strPassword;
	}
	/**
	 * @param strPassword the strPassword to set
	 */
	public void setStrPassword(String strPassword) {
		this.strPassword = strPassword;
	}
	/**
	 * @return the strNombres
	 */
	public String getStrNombres() {
		return strNombres;
	}
	/**
	 * @param strNombres the strNombres to set
	 */
	public void setStrNombres(String strNombres) {
		this.strNombres = strNombres;
	}
	/**
	 * @return the strApellidos
	 */
	public String getStrApellidos() {
		return strApellidos;
	}
	/**
	 * @param strApellidos the strApellidos to set
	 */
	public void setStrApellidos(String strApellidos) {
		this.strApellidos = strApellidos;
	}
	/**
	 * @return the strSexo
	 */
	public String getStrSexo() {
		return strSexo;
	}
	/**
	 * @param strSexo the strSexo to set
	 */
	public void setStrSexo(String strSexo) {
		this.strSexo = strSexo;
	}
	/**
	 * @return the strPais
	 */
	public String getStrPais() {
		return strPais;
	}
	/**
	 * @param strPais the strPais to set
	 */
	public void setStrPais(String strPais) {
		this.strPais = strPais;
	}
	/**
	 * @return the strDireccion
	 */
	public String getStrDireccion() {
		return strDireccion;
	}
	/**
	 * @param strDireccion the strDireccion to set
	 */
	public void setStrDireccion(String strDireccion) {
		this.strDireccion = strDireccion;
	}
	/**
	 * @return the strTelefono
	 */
	public String getStrTelefono() {
		return strTelefono;
	}
	/**
	 * @param strTelefono the strTelefono to set
	 */
	public void setStrTelefono(String strTelefono) {
		this.strTelefono = strTelefono;
	}
	/**
	 * @return the strFechaNacimiento
	 */
	public String getStrFechaNacimiento() {
		return strFechaNacimiento;
	}
	/**
	 * @param strFechaNacimiento the strFechaNacimiento to set
	 */
	public void setStrFechaNacimiento(String strFechaNacimiento) {
		this.strFechaNacimiento = strFechaNacimiento;
	}
	
	public Usuario(String intIDusuario,String strUser, String strPassword, String strNombres,
			String strApellidos, String strSexo, String strPais,
			String strDireccion, String strTelefono, String strFechaNacimiento) {
		super();
		this.strUser = strUser;
		this.strPassword = strPassword;
		this.strNombres = strNombres;
		this.strApellidos = strApellidos;
		this.strSexo = strSexo;
		this.strPais = strPais;
		this.strDireccion = strDireccion;
		this.strTelefono = strTelefono;
		this.strFechaNacimiento = strFechaNacimiento;
		this.intIDusuario = intIDusuario;
	}
	
	public Usuario(){
		
	}
	public String getIntIDusuario() {
		return intIDusuario;
	}
	public void setIntIDusuario(String intIDusuario) {
		this.intIDusuario = intIDusuario;
	}
	
	public Result getResultUsuarios(){
		try {
			//Cargar clase de controlador de base de datos
			Class.forName("com.mysql.jdbc.Driver");
			//Crear el objeto de conexion a la base de datos
			Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bdayd2","diego","diego");
			//Crear objeto Statement para realizar queries a la base de datos
			Statement instruccion = conexion.createStatement();
			//Un objeto ResultSet, almacena los datos de resultados de una consulta
			ResultSet tabla = instruccion.executeQuery("select * from usuario");
			return (ResultSupport.toResult(tabla));
			}
			catch(ClassNotFoundException e){ System.out.println(e); }
			catch(SQLException e){ System.out.println(e); }
			catch(Exception e){ System.out.println(e); }
			return null;
		}
	
	
	
	public String modificarUsuario(){
		
		try {
			//Cargar clase de controlador de base de datos
			Class.forName("com.mysql.jdbc.Driver");
			//Crear el objeto de conexion a la base de datos
			Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bdayd2","diego","diego");
			//Crear objeto Statement para realizar queries a la base de datos
			Statement instruccion = conexion.createStatement();
			//Un objeto ResultSet, almacena los datos de resultados de una consulta
			instruccion.executeUpdate("update usuario set nombres='" + strNombres + "'," 
													     + "apellidos='" + strApellidos  + "'," 
													     + "sexo='" + strSexo + "',"
													     + "direccion='" + strDireccion + "',"
													     + "telefono='" + strTelefono + "',"
													     + "pais='" + strPais + "',"
													     + "fechaNacimiento='" + strFechaNacimiento + "'"
									  + " where IDusuario = " + intIDusuario);
			mensajeBean = "Usuario modificado exitosamente";
			return "modificado";
			}
			catch(ClassNotFoundException e){ System.out.println(e); }
			catch(SQLException e){ System.out.println(e); }
			catch(Exception e){ System.out.println(e); }
			
			return "error";
	}

	
public String eliminarUsuario(){
		
		try {
			//Cargar clase de controlador de base de datos
			Class.forName("com.mysql.jdbc.Driver");
			//Crear el objeto de conexion a la base de datos
			Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bdayd2","diego","diego");
			//Crear objeto Statement para realizar queries a la base de datos
			Statement instruccion = conexion.createStatement();
			//Un objeto ResultSet, almacena los datos de resultados de una consulta
			instruccion.executeUpdate("delete from usuario where IDusuario = " + intIDusuario);
			mensajeBean = "Usuario eliminado exitosamente";
			return "eliminado";
			}
			catch(ClassNotFoundException e){ System.out.println(e); }
			catch(SQLException e){ System.out.println(e); }
			catch(Exception e){ System.out.println(e); }
			
			return "error";
	}
	
public String nuevoUsuario(){
	
	try {
		//Cargar clase de controlador de base de datos
		Class.forName("com.mysql.jdbc.Driver");
		//Crear el objeto de conexion a la base de datos
		Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bdayd2","diego","diego");
		//Crear objeto Statement para realizar queries a la base de datos
		Statement instruccion = conexion.createStatement();
		//Un objeto ResultSet, almacena los datos de resultados de una consulta
		instruccion.executeUpdate("insert into usuario set nombres='" + strNombres + "'," 
												     + "apellidos='" + strApellidos  + "'," 
												     + "sexo='" + strSexo + "',"
												     + "direccion='" + strDireccion + "',"
												     + "telefono='" + strTelefono + "',"
												     + "pais='" + strPais + "',"
												     + "fechaNacimiento='" + strFechaNacimiento + "'"
								  + ", IDusuario = '" + intIDusuario + "',"
								  + "user = '" + strUser + "'," +
								  		"password= '" + strPassword + "'");
		mensajeBean = "Usuario creado exitosamente";
		return "creado";
		}
		catch(ClassNotFoundException e){ System.out.println(e); }
		catch(SQLException e){ System.out.println(e); }
		catch(Exception e){ System.out.println(e); }
		
		return "creado";
}

public String get_new_key(){
	try {
		//Cargar clase de controlador de base de datos
		Class.forName("com.mysql.jdbc.Driver");
		//Crear el objeto de conexion a la base de datos
		Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bdayd2","diego","diego");
		//Crear objeto Statement para realizar queries a la base de datos
		Statement instruccion = conexion.createStatement();
		//Un objeto ResultSet, almacena los datos de resultados de una consulta
		ResultSet result = instruccion.executeQuery("select (IDusuario + 1) as new_key from usuario order by IDusuario desc limit 1 ");
		result.next();
		intIDusuario = result.getString("new_key");
		result.close();
		}
		catch(ClassNotFoundException e){ System.out.println(e); }
		catch(SQLException e){ System.out.println(e); }
		catch(Exception e){ System.out.println(e); }
	
	return "nuevo";
}
	
	
	
	
	
}
